Inferencing and learning based on sensorimotor input data

ABSTRACT

Embodiments relate to performing inference, such as object recognition, based on sensory inputs received from sensors and location information associated with the sensory inputs. The sensory inputs describe one or more features of the objects. The location information describes known or potential locations of the sensors generating the sensory inputs. An inference system learns representations of objects by characterizing a plurality of feature-location representations of the objects, and then performs inference by identifying or updating candidate objects consistent with feature-location representations observed from the sensory input data and location information. In one instance, the inference system learns representations of objects for each sensor. The set of candidate objects for each sensor is updated to those consistent with candidate objects for other sensors, as well as the observed feature-location representations for the sensor.

CROSS-REFERENCE TO RELATED APPLICATION

The application claims priority under 35 U.S.C. § 119(e) to U.S. patent application Ser. No. 62/335,995 filed on May 13, 2016, which is incorporated by reference herein in its entirety.

BACKGROUND 1. Field of the Disclosure

The present disclosure relates to performing inference on received input data, and specifically relates to performing inference based on sensorimotor input data.

2. Description of the Related Arts

Object detection systems aim to find or recognize different types of objects present in input data. The input data for object detection may be in the form of image data, video data, tactile data or other types of sensor data. For example, an object detection system may recognize different objects, such as a coffee cup, a door, and the like, included in visual images that are captured by a camera or sensed by tactile sensors.

Conventional object detection systems face many challenges. One of such challenges is that the same object may be placed in different locations and/or orientations. The change in the locations and/or orientations of the objects from the originally learned locations and/or orientation may cause the conventional object detection systems to recognize the same object as different objects. Such problem may be more acute when tactile sensors on, for example, a robotic hand are used to recognize an object. Existing object detection models, such as convolutional neural network models (CNN), are not always sufficient to address the changes in the location and/or locations, and often require significant amounts of training data even if they do address such changes.

Moreover, regardless of the types of sensors, the input data including a representation of an object has spatial features that would distinguish from a representation of another object. The absence of spatially distinctive features may give rise to ambiguity as to the object being recognized. Conventional object detection systems do not adequately address such ambiguity in the objects being recognized.

SUMMARY

Embodiments relate to performing inference by generating input representations of location and feature pairs, and generating output representations indicating candidates likely to be associated with the location and feature pairs. A first input processor generates a first input representation indicating potential of a first pair of a first location and a first feature at the first location being detected. A first output processor determines a first output representation corresponding to the first input representation. The first output representation indicates one or more candidates likely to be associated with the first pair. The first input processor generates a second input representation indicating potential of a second pair of a second location and a second feature at the second location subsequent to generating the first input representation. The first output processor determines a second output representation corresponding to the first input representation and the second input representation. The second output representation indicates one or more candidates likely to be associated with the first pair and the second pair.

In one embodiment, a feedback signal representing a prediction on the second input representation is generated in the first output processor based on the first output representation. The second input representation is generated in the first input processor based further on the feedback signal.

In one embodiment, an output representation corresponding to a cause is maintained active in the first output processor during training. Training input representations for pairs of locations and corresponding features associated with the cause for the training are generated in the first input processor. The training input representations are associated with the output representation corresponding to the cause.

In one embodiment, the first input representation is an activation state of a first subset of input cells in the first input processor and the second input representation is an activation state of a second subset of the input cells in the first input processor.

In one embodiment, the first location is one of a plurality of potential locations in the one or more candidates likely to be associated with the first pair.

In one embodiment, the first input representation indicates activation of a union of pairs of the first feature and each of the potential locations.

In one embodiment, the first output representation further indicates one or more candidates likely associated with the union of pairs of the first feature and each of the potential locations.

In one embodiment, the second location is one of another plurality of potential locations generated by shifting each potential location in the plurality of potential locations by a predetermined distance.

In one embodiment, the second input representation indicates an activation of a union of pairs of the second feature and one or more of the potential locations in the other plurality of potential locations that are associated with the one or more candidates indicated by the first output representation.

In one embodiment, the second subsets of the input cells in the first input processor are activated responsive to the second subsets of input cells receiving location signals representing the second location and activation signals associated with the second feature.

In one embodiment, the second subset of the input cells in the first input processor are activated based further on a feedback signal associated with the first output representation.

In one embodiment, each of the one or more candidates is represented by a corresponding activation state of a subset of output cells in the first output processor, and the feedback signal indicates the activation state of the subset of output cells.

In one embodiment, the second output representation is an activation state of a subset of output cells in the first output processor.

In one embodiment, the subset of the output cells in the first output processor are activated responsive to the subset of output cells receiving feedforward signals corresponding to the second input representation.

In one embodiment, the feedforward signals are sent from activated subset of input cells in the first input processor associated with the second input representation to the subset of the output cells in the first output processor connected to the activated subset of the input cells.

In one embodiment, first location information indicating the first location in a sparse distributed representation is received. The first input representation is generated based on the first location information. The second location information indicating the second location in a sparse distributed representation is received. The second input representation is generated based on the second location information.

In one embodiment, a first sensory input indicating the first feature from a sensor is received in the first input processor. The first input representation is generated based on the first sensory input. A second sensory input indicating the second feature from the sensor is received in the first input processor after receiving the first sensory input. The second input representation is generated based on the second sensory input.

In one embodiment, a third sensory input indicating a third feature from another sensor is received at a second input processor. A third input representation of a third pair of the third feature and a third location corresponding to the third feature is generated at a second output processor. Activation states of a subset of other output cells in the second output processor corresponding to the third input representation are determined. The activation states of the subset of the other output cells indicates one or more candidates likely to be associated with the third pair. The activation states of the subset of the other output cells in the second output processor are sent to one or more of the output cells in the first output processor connected to the other output cells. The activation of the one or more of the output cells in the first output processor are based further on the activation states of the subset of the other output cells in the second output processor.

In one embodiment, a third input representation of a third pair of a third location and a third feature at the third location is generated by a second input processor. A third output representation corresponding to the third input representation is determined at a second output processor. The third output representation indicates one or more candidates likely to be associated with the third pair. The third output representation is sent from the second output processor to the first output processor for determining the second output representation.

In one embodiment, the one or more candidates are objects, and the first and second locations are allocentric locations of candidate objects.

Embodiments also relate to performing inference by parallel processing location and feature pairs at two or more input processors and corresponding output processors. A first input representation indicating potential of a first pair of a first location and a first feature at the first location being detected is generated at a first input process. A second input processor generates a second input representation indicating potential of a second pair of a second location and a second feature at the second location being detected. A first output processor determines a first output representation corresponding to the first input representation. The first output representation indicates one or more candidates likely to be associated with the first pair. A second input processor generates a second input representation indicating potential of a second pair of a second location and a second feature at the second location being detected. A second output processor determines a second output representation corresponding to the first output representation and the second input representation. The second output representation indicates one or more candidates likely to be associated with the first pair and the second pair.

In one embodiment, the first output processor generates an updated first output representation based on the first output representation and the second output representation to indicate one or more candidates likely to be associated with the first pair and the second pair.

BRIEF DESCRIPTION OF THE DRAWINGS

The teachings of the embodiments can be readily understood by considering the following detailed description in conjunction with the accompanying drawings.

FIG. 1 is a conceptual diagram of an inference system, according to an embodiment.

FIG. 2 is a conceptual diagram of inference systems organized in a hierarchical manner, according to one embodiment.

FIG. 3 is an example illustration of a cube object and a wedge object characterized by the inference system, according to one embodiment.

FIG. 4 is an architecture diagram illustrating an inference system, according to one embodiment.

FIG. 5A is a flowchart illustrating a method of performing inference in the inference system, according to one embodiment.

FIG. 5B is a flowchart illustrating a method of learning connections for inference, according to one embodiment.

FIG. 6 is a detailed block diagram illustrating an input processor, according to one embodiment.

FIG. 7 is a conceptual diagram illustrating signals associated with a cell in the input processor, according to one embodiment.

FIGS. 8A through 8C are diagrams illustrating example activation states of cells in the input processor, according to one embodiment.

FIG. 9 is a functional block diagram illustrating a cell in the input processor of FIG. 7, according to one embodiment.

FIG. 10 is a diagram illustrating activating cells or inhibiting activation of cells in the input processor based on various rules, according to embodiments.

FIG. 11 is a detailed block diagram illustrating an output processor, according to one embodiment.

FIG. 12 is a conceptual diagram illustrating signals associated with a cell in the output processor, according to one embodiment.

FIGS. 13A through 13C are diagrams illustrating example activation states of cells in the output processors, according to one embodiment.

FIG. 14 is a functional block diagram illustrating a cell of the output processor, according to one embodiment.

FIG. 15 is a diagram illustrating activating cells or inhibiting activation of cells in the output processor based on various rules, according to embodiments.

FIG. 16 is a block diagram of a computing device for implementing inference systems according to embodiments.

DETAILED DESCRIPTION OF EMBODIMENTS

In the following description of embodiments, numerous specific details are set forth in order to provide more thorough understanding. However, note that the present invention may be practiced without one or more of these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.

A preferred embodiment is now described with reference to the figures where like reference numbers indicate identical or functionally similar elements. Also in the figures, the left most digits of each reference number corresponds to the figure in which the reference number is first used.

Certain aspects of the embodiments include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the embodiments could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by a variety of operating systems.

Embodiments also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.

The language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure set forth herein is intended to be illustrative, but not limiting, of the scope, which is set forth in the claims.

Embodiments relate to performing inference, such as object recognition, based on sensory inputs received from sensors and location information associated with the sensory inputs. The sensory inputs describe one or more features of the objects. The location information describes known or potential locations of the sensors generating the sensory inputs. An inference system learns representations of objects by characterizing a plurality of feature-location representations of the objects, and then performs inference by identifying or updating candidate objects consistent with feature-location representations observed from the sensory input data and location information. In one instance, the inference system learns representations of objects for each sensor. The set of candidate objects for each sensor is updated to those consistent with candidate objects for other sensors, as well as the observed feature-location representations for the sensor.

High-Level Overview of Inference System

FIG. 1 is a conceptual diagram of an inference system 104, according to one embodiment. The inference system 104 performs inference based on sensory input data 110 received from a set of sensors that move relative to the world, and location information 120 associated with the sensory input data 110. In one particular embodiment referred throughout the remainder of the specification, the inference system 104 performs inference on objects and generates inference output data 130. For example, the inference system 104 may receive sensory input data 110 corresponding to sensors on different locations on an unknown object, and perform object recognition based on the received inputs. As another example, the inference system 104 can predict sensory input data 110 at a particular location on a given object. However, it is appreciated that in other embodiments, the inference system 104 may be applied to any situation where a set of sensors probe different locations of a system. For example, the inference system 104 may be applied to inputs received from an online probe that navigates and measures different parts of a network in the cloud.

The sensory input data 110 may include, among others, images, videos, audio signals, sensor signals (e.g., tactile sensor signals), data related to network traffic, financial transaction data, communication signals (e.g., emails, text messages and instant messages), documents, insurance records, biometric information, parameters for manufacturing process (e.g., semiconductor fabrication parameters), inventory patterns, energy or power usage patterns, data representing genes, results of scientific experiments or parameters associated with operation of a machine (e.g., vehicle operation) and medical treatment data. The underlying representation (e.g., photo, audio and etc.) can be stored in a non-transitory storage medium. In the following, the embodiments are described primarily with reference to a set of tactile sensors on a robotic hand, merely to facilitate explanation and understanding of the inference system 104. In one embodiment, the sensory input data 110 is encoded into a vector signal and fed to the inference system 104.

The location information 120 represents a location associated with sensors generating the sensory input data 110. The location may be physical location, logical location or a combination of both. The received location information 120 is encoded in a sparse distributed representation using, for example, a method as described in U.S. Patent Publication No. 2016/0217164, which is incorporated by reference herein in its entirety.

In one embodiment, the location information 120 encodes location using an allocentric frame of reference, or an object-centric frame of reference. In other words, the location coordinates are determined relative to the object itself, rather than relative to the system containing the sensors. As described in more detail below, the location information 120 may contain known allocentric locations of the sensors, or a set of potential locations of the sensors.

The inference system 104 may process the sensory input data 110 and location information 120 to produce an output representing, among others, identification of objects, identification of recognized gestures, classification of digital images as pornographic or non-pornographic, identification of email messages as unsolicited bulk email (‘spam’) or legitimate email (‘non-spam’), identification of a speaker in an audio recording, classification of loan applicants as good or bad credit risks, identification of network traffic as malicious or benign, identity of a person appearing in the image, processed natural language processing, weather forecast results, patterns of a person's behavior, control signals for machines (e.g., automatic vehicle navigation), gene expression and protein interactions, analytic information on access to resources on a network, parameters for optimizing a manufacturing process, identification of anomalous patterns in insurance records, prediction on results of experiments, indication of illness that a person is likely to experience, selection of contents that may be of interest to a user, indication on prediction of a person's behavior (e.g., ticket purchase, no-show behavior), prediction on election, prediction/detection of adverse events, a string of texts in the image, indication representing topic in text, and a summary of text or prediction on reaction to medical treatments. In the following, the embodiments are described primarily with reference to the inference system that recognizes objects to facilitate explanation and understanding of the inference system 104.

FIG. 2 is a conceptual diagram of multiple inference systems organized in a hierarchical manner, according to one embodiment. Such a hierarchical structured system is referred to as a hierarchical inference system 200. In a hierarchical inference system 200, multiple inference systems learn to perform inference and predict at different levels of abstraction. The system 200 has three levels L1, L2, and L3, where level L1 is the lowest level, level L3 is the highest level, and level L2 is an intermediate level between levels L1 and L3. The hierarchical inference system 200 is hierarchically structured so that the processing nodes cover a larger input space as the level ascends. Level L1 includes inference systems 210A, 210B, 210C, and 210D; level L2 includes inference systems 220A and 220B; and level L3 has inference system 230. Inference systems 210A, 210B, 210C, 210D, 220A, 220B, and 230 are hierarchically connected in a tree-like structure such that each inference system has several children nodes (that is, inference systems connected at a lower level) and one parent node (that is, an inference system connected at a higher level). In one embodiment, an inference system at a child node may be connected to multiple parent nodes. For example, inference system 210B may be connected to inference systems at 220A and 220B.

Further, the hierarchical inference system 200 propagates inference output data up the hierarchy and propagates top-down signals down the hierarchy. That is, each inference system 210A, 210B, 210C, 210D, 220A, 220B, and 230 may be arranged (i) to propagate information up the hierarchy to a connected parent node, and (ii) to propagate information down the hierarchy to any connected children nodes.

Such a hierarchical inference system 200 is advantageous, among other reasons, when learning is performed by a first set of sensors, but inference is performed by a second set of sensors different from the first set. For example, the inference system 220A associated with a set of tactile sensors may be used to learn objects, and the inference system 220B associated with a set of image sensors may be used to perform inference on the object. Another advantage is the increased capacity to learn using multiple inference systems. The number of levels and arrangement of processing modes in FIGS. 1 and 2 are merely illustrative. Many variants of a hierarchical inference system may be developed and deployed depending on the specific application.

Example Object Recognition

An object can be characterized by a set of features at corresponding locations. Different objects can be defined by a set of different pairs of features and locations that appear on the object. By identifying the different feature-location representations as they appear during inference, different objects can be recognized. If two objects share some feature-location representations, the two objects may be indistinguishable until a distinctive location-feature combination is encountered.

For the purpose of illustration, the inference system 104 is assumed to detect objects based on received sensory input data 110 (for example, in the form of tactile sensor data) and corresponding location information 120 indicating the location of a tactile sensor on a robotic arm. As the combinations of features (as indicated by the sensory input data 110) and location information 120 are received, the inference system 104 identifies one or more candidate objects consistent with the observed feature-location representations. As additional sensory input data 110 and location information 120 are received, the inference system 104 narrows the candidate objects to those that are consistent with the new observed feature-location representation. The inference system 104 outputs the current set of candidate objects as inference output data 130.

FIG. 3 is an example illustration of a cube object and a wedge object characterized by the inference system 104, according to one embodiment. As shown in FIG. 3, for example, a set of allocentric locations {f₁, f₂, f₃, f₄} are defined for objects. A cube object can be characterized by pairs of spatial features and locations, i.e., spatial feature A representing a 90° corner at location f₁, spatial feature B representing a vertical edge at location f₂, and spatial feature A at location f₃. Similarly, a wedge object can be characterized by different pairs of spatial features and locations, i.e., spatial feature C representing an acute corner at location f₁, spatial feature A at location f₃, and spatial feature D representing an angled edge at location f₄.

In the example of FIG. 3, the inference system 104 first receives sensory input data 110 representing spatial feature A at location f₃ of the object. The inference system 104 generates a set of candidate objects {cube, wedge} since both objects have spatial feature A at location f₃. The inference system 104 receives an additional sensory input data 110 from the robotic finger representing spatial feature B at location f₂. The inference system 104 reduces the set of candidate objects to {cube}, as the cube object is the only object consistent with the observed feature-location representations. The inference system 104 outputs the cube object as inference output data 130.

In another embodiment, when locations of the sensors are initially unknown, the inference system 104 generates a set of candidate objects and a set of candidate feature-location representations. The inference system 104 receives sensory input data 110 and location information 120 associated with the object over time. The inference system 104 updates the set of candidate objects and the set of candidate feature-location representations to those that are consistent with the observed sensory input data 110 and location information 120, until a single object and a single feature-location representation remains. The inference system 104 outputs the remaining object as inference output data 130. In this manner, the inference system 104 can identify objects even if allocentric locations on the object are initially unknown.

Specifically, the inference system 104 receives sensory input data 110 from a sensor at an unknown location on the object. The inference system 104 generates a set of candidate feature-location representations consistent with the received sensory input data 110. Thus, the set represents all potential locations associated with the particular feature. Subsequently, the inference system 104 generates a set of candidate objects consistent with the set of candidate feature-location representations. Thus, the set represents all objects consistent with the candidate feature-location representations.

Returning to the example in FIG. 3, the inference system 104 receives sensory input data 110 from a tactile sensor representing spatial feature A on an unknown location of an object. The inference system 104 generates a set of candidate feature-location representations {A-f₃, A-f₁} including locations associated with spatial feature A. This implies that the sensor is located at the set of potential locations {f₁, f₃} of the object at the current time step. The inference system 104 subsequently generates a set of candidate objects {cube, wedge} since both objects are associated with feature-location representations of spatial feature A at locations f₁ or f₃.

Then, the inference system 104 receives additional sensory input data 110 from the sensor at a new location on the object and location information 120 indicating an updated set of potential locations. Specifically, the updated set of potential locations are generated based on a determined location shift between the previous location of the sensor and the current location of the sensor on the object. The updated set of locations represents new potential locations of the sensor at the current time step. In one embodiment, the location shift is determined based on movement of the sensors from the previous location to the current location, as determined by one or more controllers controlling movement of actuators for moving the sensors to new locations. For example, a controller may use gyroscope or accelerometer sensors in the robotic finger to determine how much the robotic finger has moved. The determined distance can be transformed into a location shift in the allocentric space. The inference system 104 updates the set of candidate feature-location representations to those that are consistent with the new sensory input data 110 and location information 120, and the set of candidate objects. Subsequently, the inference system 104 updates the set of candidate objects to those that are consistent with the updated set of feature-location representations. In one embodiment, this process is repeated until a single candidate object and a single feature-location representation remain.

In the example in FIG. 3, the inference system 104 receives additional sensory input data 110 from the tactile sensor representing spatial feature D at a new location on the object. The inference system 104 also receives location information 120 including a set of potential locations {f₂, f₄} determined based on a location shift of one unit to the right. Specifically, f₂ is a location one unit to the right of the previous potential location f₁, and f₄ is a location one unit to the right of the previous potential location f₃. Subsequently, the inference system 104 updates the set of candidate feature-location representations to {D-f₄}, as D-f₄ is the only combination that is consistent with the updated sensory input data 110 and location information 120, as well as the set of candidate objects. The inference system 104 updates the set of candidate objects to {wedge}, as the wedge object is the only object that is consistent with the feature-location representation D-f₄. The object detection system 104 outputs the wedge object as the final detected object as there is only a single object left in the set of candidate objects. The inference system 104 outputs the wedge object as inference output data 130.

In another embodiment, locations of the sensors on the object may be known when performing inference. The inference system 104 receives sensory input data 110 and location information 120 associated with the object over time. The inference system 104 generates and updates the set of candidate objects to those that are consistent with the observed feature-location representations, and outputs the candidate objects as inference output data 130.

In yet another embodiment, the inference system 104 may only receive sensory input data 110, without receiving location information 120. The inference system 104 may generate the set of candidate objects with only the feature information received from the sensory input data 110. Returning to the example in FIG. 3, the inference system 104 receives sensory input data 110 corresponding to Feature B. The inference system 104 may determine that the object is a cube object even without location information 120, since the cube object is the only object having Feature B.

In further embodiments, the inference system 104 may receive sensory input data 110 where corresponding the location information 120 is received for some sensory input data 110 but not others. In such embodiments, the inference system 104 generates and updates the set of candidate objects consistent with the feature-location representations (where the location information is provided) and the features without corresponding locations.

In one embodiment, the inference system 104 learns separate representations of objects for each sensor in the set of sensors based on the sensory input data 110 and location information 120 received from each particular sensor. Thus, responsive to receiving information on an unknown object, the inference system 104 generates a set of candidate objects for each sensor based on at least the feature-location representations received for the sensor. In one embodiment, the inference system 104 determines the set of candidate objects for a sensor based on not only the received feature-location representations for the sensor, but also the set of candidate objects for other sensors. Specifically, for a given time step, the inference system 104 updates the set of candidate objects to those not only consistent with the observed feature-location representations, but also consistent with candidate objects for other sensors. In this manner, the inference system 104 can perform faster inference given sensory input data 110 and location information 120 from a larger number of sensors, since the set of candidate objects for each sensor will quickly settle to an object representation consistent across all sensors.

Returning to the example in FIG. 3, a first tactile sensor on a robotic finger may receive feature-location representations consistent with the set of objects {cube, wedge}. A second tactile sensor on a different robotic finger may receive feature-location representations consistent with the object {cube}. Based on candidate objects of other sensors, the set of candidate objects for the first tactile sensor may be updated to a single object {cube}, since the cube object is the only object consistent across the first and second tactile sensors.

In addition to the advantages described above, the inference system 104 shown in FIG. 1 may perform inference independent of the orientation or location of the object relative to the set of sensors. For example, the inference system 104 can perform inference on a soda can object independent of whether the object is sensed by sensors standing up or lying on its side. The inference system 104 can also perform inference using sensory input data 110 from a subset of sensors different from those used to learn the object representation. For example, the inference system 104 can perform inference on a coffee cup using sensory input data 110 from tactile sensors on second and third robotic fingers different from tactile sensors on first and fourth robotic fingers used to learn the coffee cup object representation.

Architecture of Inference System

FIG. 4 is a detailed block diagram illustrating an inference system 104, according to one embodiment. The inference system 104 shown in FIG. 4 includes, among other components, input processors 410A, 410B, 410C, output processors 412A, 412B, 412C and a controller 422. Input processor 410A and output processor 412A each correspond to sensor A in a set of sensors. Input processor 410B and output processor 412B each correspond to sensor B in the set of sensors. Input processor 410C and output processor 412C each correspond to sensor C in the set of sensors. Although input and output processors 410A, 410B, 410C, 412A, 412B, 412C corresponding to a set of three sensors A, B, C are shown in FIG. 4, in practice, there may be fewer or more input and output processors depending on the number of sensors. The set of sensors may be the same type of sensors (e.g., tactile sensor) or a combination of different types of sensors (e.g., a visual and a tactile sensor).

The input processor 410 generates candidate feature-location representations. The input processor 410 includes, among other components, a plurality of cells organized into columns. The presence of a particular feature-location representation (e.g., spatial feature A at location f₃) is represented by a subset of activated cells in the input processor 410. Thus, a set of candidate feature-location representations are generated by activating the cells associated with each representation in the input processor 410. Specifically, cells in the input processor 410 are activated responsive to receiving sensory input data 110 and location information 120 indicating presence of feature-location representations associated with the cells. Cells in the input processor 410 may also be activated responsive to receiving feedback inputs 460 from output processors 412 indicating that feature-location representations associated with the cells are present in at least one candidate object in the current set of candidate objects. The input processor 410 provides activation states of cells (i.e., presence of feature-location representations) to output processors 412 as feedforward signals 440.

The controller 422 is hardware or a combination of hardware and software for sending operation signals to actuators (e.g., robotic arm) associated with the movement of sensors that provide sensor inputs 110A, 110B, 110C. The controller 422 also functions as a source of location information that may generate and provide allocentric locations of sensors as the location information 120A, 120B, 120C to the input processors 410A, 410B, 410C. For this purpose, the controller 422 may include, among other components, a processor, a memory and an interface devices for communicating with the actuators and the sensors. The memory can include software components for controlling and operating the actuators (e.g., a motion planning module and an actuator control algorithm).

The output processor 412 determines a set of candidate objects based on feedforward signals 440 and optionally lateral signals 480. The output processor 412 includes, among other components, a plurality of cells. In one embodiment, the plurality of cells are organized into columns. A subset of activated cells in the output processor 412 represents presence of a particular object (e.g., coffee cup). Thus, a set of candidate objects are represented by activating a union of cells associated with each object in the output processor 412. Specifically, cells in the output processor 412 are activated responsive to receiving feedforward signals 440 from input processors 410 indicating feature-location representations associated with the objects the cells represent. The feedforward signals 440 are received via feedforward connections that are connections between all or a subset of cells in the input processor 410 and a subset of cells in the output processor 412 for transmitting feedforward signals 440. Thus, feedforward connections represent an association between the object represented by the subset of cells in the output processor 412 and the feature-location representation represented by the subset of cells in the input processor 410. In one embodiment, feedforward connections between cells may be severed or generated during the learning process.

In one embodiment, each output processor 412 for a corresponding sensor generates its own set of candidate objects based on the feature-location representations present in the input processor 410 for the corresponding sensor. For example, output processor 412A may generate a set of candidate objects based on the activated subset of cells in input processor 410A, and output processor 412B may generate another set of candidate objects based on the activated subset of cells in input processor 410B.

Cells in the output processor 412 may also be activated responsive to receiving lateral signals 480 from cells in the same output processor 412 or cells in other output processors 412 associated with the same object. The lateral signals 480 are received via lateral connections that are connections between a subset of cells in an output processor 412, and another subset of cells in the same output processor 412 or a different output processor 412 for transmitting lateral signals 480. A subset of cells in output processors 412 connected together by lateral connections may represent the same object. Thus, cells in an output processor 412 that represent objects common with those represented in other output processors 412 are reinforced through lateral connections. The set of lateral connections between subsets of cells in the same output processor 412 may be referred to as intra-lateral connections that carry intra-lateral inputs. The set of lateral connections between subsets of cells in different output processors 412 may be referred to as inter-lateral connections that carry inter-lateral inputs. In one embodiment, lateral connections between cells may be severed or generated during the learning process.

However, the lateral signals 480 shown in FIG. 4 are merely examples, and it is appreciated that there can be a variety of modifications to the configuration shown in FIG. 4. Each output processor 412 can provide and receive lateral signals 480 from one or more other output processors 412. For example, the output processor 412A can provide and receive lateral signals 480 to and from the output processor 412C as well as output processor 412B.

The output processor 412 provides the activation states of cells to cells in input processor 410 as feedback inputs 460. The feedback inputs 460 are provided via feedback connections that are connections between a subset of cells in the output processor 412 and a subset of cells in the input processor 410 for transmitting feedback inputs 460. Thus, similarly to feedforward connections, feedback connections represent an association between the object represented by the subset of cells in the output processor 412 and the feature-location representation represented by the subset of cells in the input processor 410. The subset of cells in the input processor 410 and the output processor 412 that have feedback connections may coincide with the subset of cells that have feedforward connections. In one embodiment, feedback connections between cells may be severed or generating during the learning process.

In one embodiment, connections between cells are learned by selecting and maintaining activation for a subset of cells in the output processors 412 for an object, and forming connections between cells in the input processor 410 and the output processor 412 based on sensory input data 110 at various locations on the object. Specifically, each output processor 412 selects a subset of cells for activation that correspond to a particular object. The activation states of cells in the output processors 412 are maintained. An activated cell in an output processor 412 selects a subset of activated cells in the same output processor 412 and forms intra-lateral connections with the selected subset of cells. The activated cell in the output processor 412 also selects a subset of activated cells in different output processors 412 and forms inter-lateral connections with the selected subset of cells.

In one embodiment, each lateral connection is associated with a permanence value indicating the frequency of that connection. In other words, the permanence value for a lateral connection indicates frequency of cell activations in the output processors 412 due to the activation of cells connected to the active cells through lateral connections. The permanence value may be adjusted through the learning process to sever existing lateral connections or generate new lateral connections.

Subsequently, the input processor 410 for a sensor receives sensory input data 110 at a given location on the particular object. Responsive to receiving sensory input data 110 and location information 120 including the location of the sensor on the object, the input processor 410 activates a subset of cells associated with the corresponding feature-location representation. Specifically, if the sensed feature-location representation is previously known, the cells in the input processor 410 associated with the feature-location representation may be activated. If the sensed feature-location representation was previously unknown, the inference system 104 selects a random cell in each column corresponding to the feature in the sensory input 110, and these cells are associated with the location included in the received location information 120. The selected cells are activated.

An activated cell in the input processor 410 selects a subset of cells in the corresponding output processor 412 and forms feedforward connections with the selected subset of cells. An activated cell in the output processor 412 selects a subset of cells in the corresponding input processor 410 and forms feedback connections with the selected subset of cells. This process is repeated when the sensor senses a new location on the object, leading to new sensory input data 110 and location information 120.

In one embodiment, each feedforward and feedback connection is associated with a permanence value indicating frequency of the connection. In other words, the permanence value for a feedforward connection indicates frequency of cell activations in the output processor 412 due to activation of cells in the input processor 410 connected to the active cells through feedforward connections. The permanence value for a feedback connection indicates frequency of cell activations in the output processor 412 due to the activation of cells in the input processor 410 connected to the active cells through feedback connections. The permanence value may be adjusted through the learning process to sever existing feedforward or feedback connections or generate new connections.

The learning process is completed for the particular object when, for example, each sensor has sensed sensory features on a set of allocentric locations on the object. When a new object is learned, the cells in the input processor 410 and the output processor 412 are deactivated, and the process described above is repeated for the new object.

Performing Inference Using the Inference System

FIG. 5A is a flowchart illustrating a method of performing inference in the inference system 104, according to one embodiment. The input processor 410 receives 510 sensory input data 110 for a corresponding sensor, and activates cells associated with the feature described in the sensory input data 110. Thus, the combination of activated cells in the input processor 410 represent the set of candidate feature-location representations associated with the particular feature. The input processor 410 generates and provides the activation states of the cells as feedforward signal 440 to cells in the output processor 412 that have feedforward connections with the activated cells in the input processor 410.

The output processor 412 activates 514 its cells based on the feedforward signal 440 indicating activation states of the cells in the input processor 410. Thus, the set of activated cells in the output processor 412 represents the set of candidate objects consistent with the candidate feature-location representations. The output processor 412 generates and provides the activation states of the cells as lateral signal 480 and feedback input 460. That is, the activation states of cells in one output processor 412 are provided to cells in the same output processor or other output processors 412 in the form of lateral inputs (including intra-lateral inputs and inter-lateral inputs), and are provided to cells in the input processor 410 in the form of feedback inputs.

The input processor 410 receives 518 sensory input data 110 at a new location due to, for example, movement of the sensor. The input processor 410 also receives location information 120 indicating a set of updated potential locations based on a determined location shift of the sensor from the previous location. The location information 120 may be received for example, from a controller 422 controlling movement of the sensors (e.g., on the robotic hand) through one or more actuators. In other examples, the location information 120 may be received from a separate encoder that determines the updated set of potential locations based on receiving location shifts information of the sensors.

The input processor 410 updates 522 activation of cells based on the new sensory input data 110 and location information 120, and also based on feedback input 460 indicating activation states of the cells in the output processor 412. Thus, the set of activated cells in the input processor 412 represent feature-location representations consistent with the updated sensory input data 110 and location information 120, as well as the set of candidate objects. The input processor 410 again provides the activation states of the cells as feedforward signal 440 to cells in the output processor 412.

The output processor 412 updates 526 activation of cells based on the new feedforward signal 440 indicating activation states of cells in the input processor 410, and lateral signal 480 indicating activation states of cells in the same or other output processor 412. Thus, the set of activated cells in the output processor 412 represent candidate objects consistent with the set of updated candidate feature-location representations, as well as candidate objects in other output processors 412. If the activated cells in the output processor 412 match a single object, than the inference is completed. Otherwise, the process is repeated to receive another sensory input data 110 at a new location.

In one embodiment, the output processor 412 determines that a subset of activated cells match an object if a predetermined threshold of activated cells in the output processor 412 are associated with a given object. For example, the output processor 412 may output a coffee cup object if 90% of the activated cells in the output processor 412 are associated with the coffee cup object. In one embodiment, if a single object cannot be identified, the output processor 412 may output the current list of candidate objects as the output.

The steps shown in FIG. 5A are merely illustrative. One or more of these steps may be used in conjunction, selective selected or discarded, and/or varied during operation of the inference process. For example, one or more of these steps may be performed in a parallel operations and not in a particular sequence.

Learning of Connections for Inference

FIG. 5B is a flowchart illustrating a method of learning connections for inference, according to one embodiment. A subset of cells in output processors 412 are selected to represent an object when the cells are activated 550. The combination of activated cells across one or more output processors 412, when activated, indicates that the object is detected.

Inter-lateral connections and intra-lateral connections are formed 552 between one or more activated cells of the output processors 412. Specifically, intra-lateral connections are connections between cells in different columns of the same output processor 412. Inter-lateral connections are connections between cells in output processors corresponding to different sensors.

The inference system 104 receives 554 sensory input data 110 associated with an allocentric location on the object. A subset of cells in the input processor 410 corresponding to the feature-location representation are activated 556. Feedforward and feedback connections are formed 558 between the activated cells of the output processor 412 and all or a subset of the activated cells of the input processor 410. If the learning process is not completed, the process repeats such that the sensors receive new sensory input data 110 on a new location on the object.

After completing learning for an object, learning for a new object can be performed by activating 550 a different subset of cells in output processors 412 to represent the new object when the cells are activated, and repeating subsequent processes as illustrated in FIG. 5B.

The steps shown in FIG. 5B are merely illustrative. One or more of these steps may be used in conjunction, selective selected or discarded, and/or varied during operation of the learning process. For example, one or more of these steps may be performed in a parallel operations and not in a particular sequence.

Example Architecture of Input Processor

FIG. 6 is a detailed block diagram illustrating an input processor 410, according to one embodiment. Input processor 410 may include, among other components, an output generator 612, columns of cells 11 through Mk (in dashed boxes), and a column activator 618.

The column activator 618 is a software, hardware or a combination thereof that receives sensory input data 110 and generates column activation signals 634 indicating which columns of cells are to be activated based on the received sensory input data 110. One or more column activation signals 634 may represent presence of particular features in the sensory input data 110.

The input processor 410 also receives feedback signals 460 from the corresponding output processor. The feedback signals 460 are fed to a subset of cells in the input processor 410 with feedback connections to the cells that originate the feedback signals, and indicate potential activation of one or more cells in the input processor 410 that are associated with at least one candidate object in the set of candidate objects represented by cells in the output processor 412. The input processor 410 also receives location information 120. The location information 120 are fed to cells in the input processor 410 as location signals, and indicates the corresponding sensor may be at a known or potential location on the object associated with the cells.

In one embodiment, each column includes the same number (N) of cells. A cell in the input processor 410 has three states: inactive, predictive, and active. As described in more detail below with reference to FIG. 7, a cell may become activated (i.e., in an active state) if the cell receives a column activation signal 634 when it is previously in a predictive state. When a cell in a column becomes activated, the active cell inhibits activation of other cells in the same column except in certain limited circumstances. The predictive state represents a prediction that the cell will be activated by the column activation signal 634 at a next time step. A cell may become predictive (i.e., in a predictive state) in response to receiving location signals. A cell may also become predictive in response to receiving feedback signals from cells in the output processor through feedback connections. A cell that is in neither an active state nor a predictive state is referred to as inactive (i.e., in an inactive state).

In one embodiment, cells are activated if the cells are previously in a predictive state and receive column active signals 634 at a subsequent time step. For example, responsive to receiving location information 120, a subset of cells that receive location signals may become predictive. Predictive cells that receive column activation signals 634 generated based on the received sensory input data 110 are activated. In this manner, only the subset of cells in the input processor 410 that are consistent with the sensory input data 110 and the location information 120 are activated. As another example, cells that receive feedback signals may become predictive due to activation of cells in the corresponding output processor that provide feedback signals to the cells. Predictive cells that receive column activation signals 634 generated based on the sensory input data 110 are activated. In this manner, only the subset of cells in the input processor 410 that are consistent with the sensory input data 110 and the current set of candidate objects are activated. As yet another example, cells that receive both location signals and feedback signals may become predictive. In this instance, the subset of cells in the input processor 410 that are consistent with the sensory input data 110, location information 120, and the set of candidate objects are activated.

In one embodiment, if cells in a predictive state were predictively active due to feedback signals transmitted through feedback connections, and sensory input data 110 resulted in correct activation of the cell, the permanence values for feedback connections of the cells to activated cells in the output processor 412 are increased whereas the permanence values for connections to inactivated cells in the output processor 412 are decreased. On the other hand, if cells in the predictive state are not followed by activation of the cells, the permanence values for feedback connections to activated cells in the output processor 412 are decreased. If a permanence value for a connection drops below a threshold value, the connection may be severed. In this manner, feedback connections between cells with low permanence values no longer contribute to activation of cells in the input processor 410.

Continuing with the example, if no cell in the column is currently in a predictive state, one or more of the cells (e.g., all of the cells in the column) can be randomly selected and activated. When no cell in the column is currently in a predictive state, cells in the column may be activated based on recent activation states. Specifically, the cell most recently activated in the column may be selected for activation. Alternatively, all cells in the column may be activated if no cell in the column is currently in a predictive state.

In another embodiment, one or more cells in the column are activated even though other cells are in the predictive state in the same column.

The cells individually send pooling output 622 identifying the states of cells 11 through Mk to output generator 612. In one embodiment, the pooling output 622 indicates which cells are activated and/or which cells were predicted and became active. For example, the pooling output 622 of each cell may be represented as a binary value such as a two-bit binary value, with one bit indicating whether the cell is activated and one bit indicating whether the cell was predictive and became active. In some embodiments, the pooling output 622 indicates which cells are activated and which cells are predictive. For example, the pooling output 622 of each cell may be represented as a binary value such as a two-bit binary value, with one bit indicating whether the cell is activated and one bit indicating whether the cell is predictive. Although the pooling output 622 takes a binary value in most cases, the pooling output 622 may also be a non-binary value. For example, the pooling output 622 may include an integer or real-number value indicating the strength of the cell's activated state.

The output generator 412 is software, hardware, firmware or a combination thereof that generates feedforward signal 440 based on the activation of cells 11 through Mk. In one embodiment, output generator 412 collects the pooling outputs 622 from the cells or columns and concatenates these outputs into a vector. The concatenated vector may be sent as feedforward signal 440 of the input processor 410 to the output processor 412.

Example Diagram of Cell in Input Processor

FIG. 7 is a conceptual diagram illustrating signals associated with a cell 790 in the input processor 410, according to one embodiment. The cell 790 may be a physical or logical construct that takes one of inactive, predictive, and actives based on its previous state and various signals that it receives.

As discussed in reference to FIG. 6, cell 790 receives location signal 732 indicating that the corresponding sensor may be at a known location or a potential location on the object associated with the cell 790. Cell 790 also receives feedback signal 736 indicating activation of one or more cells in the corresponding output processor having feedback connections to the cell.

As discussed in reference to FIG. 6, cell 790 may become predictive when it receives location signal 732 and/or feedback signal 736. Cell 790 also receives column activation signal 634 that may cause activation of the cell 790.

In one embodiment, cell 790 becomes active when (i) cell 790 is in a predictive state, then transitions to an active state in response to the column activation signal 634, and/or (ii) cell 790 is not in a predictive state but is nonetheless activated in response to the column activation signal 634. For example, if the column containing cell 790 receives a column activation signal 634 but no cells in the column are in a predictive state, all cells in the column including cell 790 may be activated.

Example Operation and Function of Cells in Input Processor

FIGS. 8A through 8C are diagrams illustrating example activation states of cells in the input processor 410 associated with learning and recognizing different objects including object A and object B, according to one embodiment. Each circle in represents a cell in the input processor 410. When each cell becomes active, the cell sends out pooling output 622.

FIG. 8A illustrates the input processor 410 receiving sensory input data 110 at an initial state without a previous training. Based on the received sensory input data 110, column activation signals 634 corresponding to column 1 and column M of the input processor 410 are generated. Since initially no cells are in a predictive state, all cells in column 1 and column M are activated as a result of receiving the column activation signals 634. The activation states of the cells are represented in pooling output 622 generated by the columns of cells.

The activated cells in the input processor 410 then cause activation of cells in the output processor 412 associated with candidate objects A and B having feedforward connections to the activated cells in the input processor 410. The activation of cells in the output processor 412 then provides feedback signal described with reference to FIG. 8B.

FIG. 8B shows the operation of cells in the input processor 410 in the next time step, according to one embodiment. As illustrated in FIG. 8B, cells V, Y, and Z are connected to the activated cells in the output processor 412, and hence, receive feedback signals 736 from cells in the output processor 412 associated with candidate objects A and B that are represented by activation of cells in the output processor 412. The feedback signal 736 places cells V, Y, and Z in a predictive state. Cells V, Y and W of the input processor 410 also receive location information 120 indicating a set of potential locations f₃ and f₄. The potential locations f₃ and f₄ are generated based on an estimated location shift between the location of the sensors when generating the sensory input data 110 for FIG. 8A and the current location of the sensors. Cells V, Y, and W receive location signals 732 since they are associated with these locations. Cells V, Y, and Z maintain their predictive state, and cell W also becomes predictive.

As shown in FIG. 8C, the input processor 410 receives new sensory input data 110. Based on the new sensory input data 110, the column activator 618 generates column activation signals 634 corresponding to column 1 and column M of the input processor 410. Since cell V was previously in a predictive state, cell V is selected for activation. Although both cells W and Y were in a predictive state, only cell Y is selected for activation due to inhibition of cell W by cell Y because cell Y received both feedback and location signals, while cell W only received a location signal. Various activation and inhibition rules will be described in more detail with reference to FIG. 10 below.

Functional Block Diagram of Cell in Input Processor

FIG. 9 is a functional block diagram illustrating cell 790, according to one embodiment. Cell 790 may include, among other components, a feedback signal monitor 910, a location signal monitor 912, a cell activation predictor 916, a cell activator 918, and a column inhibitor 924. One or more of these components may be embodied in software, firmware, hardware or a combination thereof. Further, cell 790 may include other components not illustrated in FIG. 9.

The feedback signal monitor 910 is software, firmware, hardware or a combination thereof for monitoring activation states of cells in a corresponding output processor 412. For this purpose, the feedback signal monitor 910 receives the feedback signal 736 from cells in the output processor 412 connected to the cell 790. If the feedback signal 736 indicates that one or more cells having feedback connections to the cell 790 are active, feedback signal monitor 910 sends feedback hit signal 934 to cell activation predictor 916.

The location signal monitor 912 is software, firmware, hardware or a combination thereof for receiving the location signal 732. If the location signal 732 indicates that the locations on the object associated with the cell 790, the location signal monitor 912 sends location hit signal 930 to cell activation predictor 916.

The cell activation predictor 916 is software, firmware, hardware or a combination thereof that places the cell in a predictive state based on location hit signal 930 and/or feedback hit signal 934. In one embodiment, if at least one of the location hit signal 930 and the feedback hit signal 934 are generated, the cell activation predictor 916 places the cell 790 in a predictive state, and sends predictive signal 941 indicating that the cell 790 is in a predictive state to the cell activator 918.

The cell activator 918 is software, firmware, hardware or a combination thereof that determines whether to place the cell 790 in an activated state according to a set of activation and inhibition rules. For this purpose, the cell activator 918 receives column activation signal 634, predictive signal 941, and inhibition signal 926.

One additional condition for cell activation may be that there be no inhibition signals 926 from other cells in the same column or in a different column. If inhibition signal 926 is received from other cells, cell 790 is not activated despite column activation signal 634. If the cell 790 is placed in an activated state, the cell activator 918 generates pooling output 622 indicating whether the cell is active, or was predictive and became active. In one embodiment, pooling output 622 is generated regardless of the reasons cell 790 is activated. Various activation and inhibition rules are described in further detail in reference to FIG. 10 below.

In response to activation of the cell 790 by the cell activator 918, column inhibitor 924 generates inhibition signal 928. Inhibition signals 928 are sent to other cells in the same column or in a different column to inhibit activation of the other cells in the same input processor 410.

Example Activation Rules of Cell in Input Processor

FIG. 10 is a diagram illustrating activating cells or inhibiting activation of cells in the input processor 410 based on various rules, according to embodiments. In the example of FIG. 10, some of the cells generate feedback hit signal 934 and/or location hit signal 930. The cells are arranged in columns (columns 1 through 5) and some columns receive column activation signal CAS whereas some columns do not. “Feedback” arrows (dotted) indicate that the cell has generated feedback hit signal 934, and “Location” arrows (solid) indicate that the cell has generated location hit signal 930. As discussed above in detail with reference to FIGS. 6 through 8, if a column of cells receive column activation signal 634, but does not contain any predictive cells, all of the cells or a subset of the cells in the column become active. The rules associated with the operations of cells described below with reference to FIG. 10 are merely for illustration. One or more of these rules may be used in conjunction, selective selected or discarded, and/or varied during operation of the processing nodes.

One of the rules is to have cells that generate both location hit signal 930 and feedback hit signal 934 inhibit activation of cells that only generate location hit signal 930 in the same column. As shown in column 1 of FIG. 10, cell 13 generates location hit signal 930 and cell C14 generates both location hit signal 930 and feedback hit signal 934. After receiving column activation signal CAS1, only cell C14 is activated whereas cell C12 is not activated because cell C14 (generating both the location hit signal 930 and the feedback hit signal 934) inhibit the activation of cell C13 (generating only location hit signal 930).

Another rule is if there are cells that only generate feedback hit signal 934, these cells are activated after receiving a column activation signal 634. As shown in column 2, cells C22 and C24 generate feedback hit signals 934. After receiving column activation signal CAS2, cells C22 and C24 are both activated.

Alternatively, another rule is to activate all cells in a column upon receiving the column activation signal 634 if there are no cells that generate location hit signal 930. As shown in column 3, although cells C32 and C34 generate feedback hit signal 934, all cells in the column are activated after receiving the column activation signal CAS3 because there is no cell in column 3 that generates location hit signal 930.

Another rule is if there are cells that only generate location hit signal 930, these cells are activated after receiving a column activation signal 634. As shown in column 4, cells C41 and C43 generate location hit signals 930. After receiving column activation signal CAS4, cells C41 and C43 are both activated.

Another rule is to have cells that generate only location hit signal 930 inhibit activation of cells that only generate feedback hit signal 934 in the same column. As shown in column 5, cells C51 and C53 generate feedback hit signal 934. Cell 54 generates location hit signal 930. After receiving column activation signal CAS5, only cell 54 is activated whereas cells C51 and C53 are not activated because cell C54 (generating only the location hit signal 930) inhibits the activation of cells C51 and C53 (generating only the feedback hit signal 934).

Another rule is to require cells generating both location hit signal 930 and feedback hit signal 934 to be activated. In other words, cells generating only location hit signal 930 or only feedback hit signal 934 are not activated even though they may be in a predictively active state.

The rules illustrated in conjunction with FIG. 10 are merely examples, and those of skill in the art will appreciate other activation and inhibition rules for the inference system 104.

Example Architecture of Output Processor

FIG. 11 is a detailed block diagram illustrating an output processor 412, according to one embodiment. Output processor 412 may include, among other components, an output generator 1108, a set of cells 11 through Nj (in dashed boxes), and a signal distributor 1118. As described previously in conjunction with FIG. 4, in one embodiment, the cells of the output processor 412 may optionally be arranged in columns. In such an embodiment, there may be a single cell in each column. The output processor 412 receives feedforward signals 440 indicating activation states of cells in the input processor 410. The feedforward signals 440 may represent presence of particular feature-location representations in the input processor 410. The feedforward signals 440 are fed to appropriate cells in the output processor 412 through feedforward signals 1146.

The output processor 412 also receives inter-lateral inputs 1182 from cells in other output processors. The inter-lateral input described herein refers to a signal received at a cell in an output processor from cells in other output processors connected to the cell. The inter-lateral inputs 1182 are fed to cells in the output processor 412 through inter-lateral connections. An inter-lateral signal to cells in the output processor 412 indicates activation of one or more cells in other output processors associated with the same object as the cells. One or more cells in the output processor 412 also receive intra-lateral inputs 1184 from other cells in the same output processor 412. The intra-lateral inputs 1184 are fed to cells in the output processor 412 through intra-lateral signals. The intra-lateral input described herein refers to a signal received at a receiving cell in an output processor from a sending cell in the same output processor. The inter-lateral input and the intra-lateral input collectively form lateral inputs. In one embodiment, a single cell may receive multiple lateral signals from cells in the same output processor 412 or in other output processors.

The output processor 412 also generates feedback signals 460 indicating activation states of cells in the output processor 412. As described above with reference to FIG. 6, the feedback signals 460 are fed to the corresponding input processor 410.

Similarly to cells in the input processor 410, a cell in the output processor 412 has three states: inactive, predictive, and active. A cell may become activated (i.e., in an active state) if the cell receives feedforward signal 1146. When a cell in the output processor 412 becomes activated, the active cell may inhibit activation of a subset of cells in the output processor 412 that are within a predetermined distance from the activated cell. In another embodiment, when cells of the output processor 412 are arranged in columns, the active cell may inhibit activation of other cells in the same column as the activated cell except in certain limited circumstances. In one embodiment, once a cell in the output processor 412 is activated, the cell maintains its active state for a predetermined length of time. The predictive state represents a prediction that the cell will be activated by a feedforward signal 1146. A cell may become predictive (i.e., placed in a predictive state) in response to receiving inter-lateral signals and/or intra-lateral signals. In one embodiment, once a cell in the output processor 412 is predictively activated, the cell maintains its predictive state for a predetermined length of time. A cell that is in neither an active state nor a predictive state is referred to as inactive (i.e., in an inactive state).

In one embodiment, cells in a predictive state become active after receiving feedforward signals. For example, responsive to receiving inter-lateral inputs 1182 and intra-lateral inputs 1184, cells that receive one or more lateral signals may become predictive. Predictive cells that receive feedforward signals may be activated. In this manner, the subset of cells in the output processor 412 that are consistent with the observed feature-location representations in the input processor 410 and candidate objects in other output processors are activated. In general, cells in output processors associated with the object being detected are more likely to be predictively activated through lateral connections to other cells associated with the object. Over time, these cells are in turn activated responsive to receiving feedforward signals 440 indicating presence of feature-location representations associated with the object. Thus, the subset of cells associated with the object will remain active after iterating through the process of updating activation states of cells in the input processor 410 and the output processor 412.

In one embodiment, if cells in a predictive state were predictively active due to lateral signals transmitted through lateral signals, and feedforward signal resulted in correct activation of the cell, the permanence values for lateral connections to activated cells in output processors 412 are increased whereas the permanence values for connections to inactivated cells in output processors 412 are decreased. On the other hand, if cells in the predictive state are not followed by activation of the cells, the permanence values for lateral connections to activated cells in output processors 412 are decreased. If a permanence value for a connection drops below a threshold value, the connection may be severed. In this manner, connections between cells in output processors 412 with low permanence values no longer contribute to activation of cells.

Continuing with the example, if no cell in the column is currently in a predictive state, cells receiving feedforward signals 1146 are activated. For example, if no cell in the column is currently in a predictive state, all cells in the column may be activated.

The cells individually, or collectively as a column, send pooling output 1120 to output generator 1108. The pooling output 1120 identifies the state of the cells. In one embodiment, the pooling output 1120 indicates which cells are activated and/or which cells were predicted and became active. For example, the pooling output 1120 of each cell may be represented as a binary value such as a two-bit binary value, with one bit indicating whether the cell is activated and one bit indicating whether the cell was predictive and became active. In some embodiments, the pooling output 1120 indicates which cells are activated and which cells are predictive. For example, the pooling output 1120 of each cell may be represented as a binary value such as a two-bit binary value, with one bit indicating whether the cell is activated and one bit indicating whether the cell is predictive. Although the pooling output 1120 takes a binary value in most cases, the pooling output 1120 may also be a non-binary value. For example, the pooling output 1120 may include an integer or real-number value indicating the strength of the cell's cell activated state or active after being predictive state.

In one embodiment, output generator 1108 collects the pooling outputs 1120 from the cells and concatenates these outputs into a vector. The output generator 1108 generates the concatenated vector as the object output 1122. The inference system 104 determines whether the set of activated cells indicated in the object output 1122 match known object representations, and generates the set of candidate objects.

Example Diagram of Cell in Output Processor

FIG. 12 is a conceptual diagram illustrating signals associated with a cell 1290 in the output processor 412, according to one embodiment. As discussed in reference to FIG. 11, cell 1290 receives inter-lateral signals 1270 indicating activation of cells in other output processors 412. Cell 1290 also receives intra-lateral signals 1268 from other cells in the same output processor 412. The cell 1290 may receive lateral signals from one or more cells in the output processor 412. As discussed in reference to FIG. 11, cell 1290 may become predictive when it receives inter-lateral signal 1270 and/or intra-lateral signal 1268. Cell 1290 also receives feedforward signal 1146 indicating activation of cells in the input processor 410 with feedforward connections to the cell 1290.

In one embodiment, cell 1290 is activated when (i) cell 1290 is in a predictive state and receives feedforward signals 114, and/or (ii) cell 1290 is not in a predictive state but is nonetheless selected for activation in response to feedforward signals 1146. Responsive to being activated, cell 1290 may provide feedback signals 460 indicating its activation state to cells in the input processor 410 with feedback connections to the cell 1290.

As described above in reference to FIG. 11, when the cell 1290 becomes active or predictively active, the activation state of the cell 1290 may persist for a predetermined amount of time.

Example Operation and Function of Cells in Output Processor

FIGS. 13A through 13C are diagrams illustrating example activation states of cells in the output processor 412A and an output processor 412B, according to one embodiment. Each circle represents a cell in the output processor. When each cell becomes active, the cell sends out pooling output 1120.

In FIG. 13A, no cells are in a predictive state, and the output processors 412A, 412B initially receive feedforward signal 440. Cells P, Q, R, and S receive feedforward signals 1146 since they have feedforward connections to activated cells in the corresponding input processors 410A, 410B. Cells P, Q, R, and S are activated since no other cell is in a predictive state. Thus, the subset of activated cells represents the set of candidate objects that are consistent with the activated feature-location representations in the input processors 410A, 410B. The activation states of the cells are generated as pooling output 1120.

As shown in FIG. 13B, at the next time step, cell T of output processor 412A receives inter-lateral signal 1270 from cell R of output processor 412B and becomes predictive. Cell U of output processor 412A receives intra-lateral signal 1268 from cell Q of output processor 412A and becomes predictive. Similarly, cell V or output processor 412B receives intra-lateral signal 1268 from cell S of output processor 412B and becomes predictive. In addition, activated cells P and R generate feedback signal 460 that are provided to cells in the input processor 410 with feedback connections to these cells.

As shown in FIG. 13C, at the next time step, the input processor 410 receives new sensory input data 110 and location information 120, and the output processors 412 receive updated feedforward signal 440 indicating another subset of activated cells in the input processor 410. Previously activated cells P, Q, R, and S still remain active at the current time step. Cells U and V receive feedforward signals 1146 based on the new feedforward signals 440. Cells U and V are both activated since they were previously in a predictive state and received feedforward signals 1146. Although cell T was in a predictive state, only cell U is selected for activation due to inhibition of cell T by cell U. This is because cell U received both feedforward signal 1146 and intra-lateral signal 1268, while cell T only received inter-lateral signal 1270.

Over time, the subset of cells associated with the detected object will remain active as the activation states of the cells in the input processor 410 and the output processor 412 are iteratively updated.

Functional Block Diagram of Cell in Output Processor

FIG. 14 is a functional block diagram illustrating cell 1290, according to one embodiment. Cell 1290 may include, among other components, an inter-lateral signal monitor 1410, an intra-lateral signal monitor 1412, a cell activation predictor 1416, a cell activator 1418, and a column inhibitor 1424. The inter-lateral signal monitor 1410 is software, firmware, hardware or a combination thereof for receiving inter-lateral signals 1270 from other cells in output processors 412. The intra-lateral signal monitor 1412 is software, firmware, hardware or a combination thereof for receiving intra-lateral signals 1268 from other cells in the output processor 412. The feedforward signal monitor 1414 is software, firmware, hardware or a combination thereof for receiving feedforward signals 1146 from cells in the input processor 410.

If the inter-lateral signal 1270 indicates that cells in other output processors with lateral connections to the cell 1290 are active, the inter-lateral signal monitor 1410 sends inter-lateral hit signal 1434 to cell activation predictor 1416. If the intra-lateral signal 1268 indicates that other cells in the output processor 412 with lateral connections to the cell 1290 are active, the intra-lateral signal monitor 1412 sends intra-lateral hit signal 1430 to cell activation predictor 1416. The inter-lateral hit signal 1434 and intra-lateral hit signal 1430 indicate that the cell 1290 is in a predictive state. The cell activation predictor 1416 receives inter-lateral hit signal 1434 and/or intra-lateral hit signal 1430. The cell activation predictor 1416 sends indications of the cell's previous predictive states to the cell activator 1418 as predictive signal 1441. For example, the cell activation predictor 1416 indicates to the cell activator 1418 whether the cell 1290 was in a predictive state during a last time step and whether the predictive state was due to inter-lateral signals 1270 or intra-lateral signals 1268.

The cell activator 1418 receives the feedforward signal 1146, the predictive signal 1441, and inhibition signal 926, and places the cell 1290 in an activated state according to a set of activation and inhibition rules, as described below in further detail in reference to FIG. 15. The pooling input 1443 may especially indicate predictive states of other cells in the same column as cell 1290. One additional condition for cell activation is that there be no inhibition signals 1426 from other cells in the output processor 412. If inhibition signal 1426 is received from other cells, cell 1290 is not activated despite feedforward signal 1146. For example, if cell 1290 receives inhibition signal 1426 from other cells within a predetermined distance from the cell 1290, cell 1290 is not activated despite feedforward signal 1146. If the cell 1290 is placed in an activated state, the cell activator 1418 generates pooling output 1120 indicating whether the cell is active, or was predictive and became active. In one embodiment, pooling output 1120 is generated regardless of the reasons cell 1290 is activated.

In response to activation of the cell 1290 by the cell activator 1418, cell inhibitor 1424 generates inhibition signal 1428. Inhibition signals 1428 are sent to other cells in the same column or in a different column to inhibit activation of the other cells.

Example Activation Rules of Cell in Output Processor

FIG. 15 is a diagram illustrating activating cells or inhibiting activation of cells in the output processor 412 based on various rules, according to embodiments. In the example of FIG. 15, some of the cells generate inter-lateral hit signal 1434, intra-lateral hit signal 1430, and/or feedforward hit signal 1438. The cells are arranged in groups (groups 1 through 4) that are placed within a predetermined distance from each other in the output processor 412 that influence activation and inhibition states between one another. However, each group in FIG. 15 may also represent a column of cells. “Intra Lateral” arrows (solid) indicate that the cell has generated intra-lateral hit signal 1430, and “Inter Lateral” arrows (dotted) indicate that the cell has generated inter-lateral hit signal 1434, and “Feedforward” arrows (dashed) indicate that the cell has received feedforward signal 1146. The rules associated with the operations of cells described below with reference to FIG. 15 are merely for illustration. One or more of these rules may be used in conjunction, selective selected or discarded, and/or varied during operation of the processing nodes.

One of the rules is if no cells generate lateral hit signals 1430, 1434, the cells that receive feedforward signal 1146 are activated. As shown in group 1, cells C11 and C14 receive feedforward signals 1146. Since no other cell generates lateral hit signals, cells C11 and C14 are activated.

Another rule is to have cells that receive feedforward signal 1146 and generate at least one lateral hit signal 1434, 1430 inhibit activation of cells that only generate lateral hit signals 1434, 1430 in the same column. As shown in group 2, cell C24 receives feedforward signal 1146 and intra-lateral hit signal 1430, and cell C22 generates inter-lateral hit signal 1434. Only cell C24 is activated whereas cell C22 is not activated because cell C24 (receiving the feedforward signal 1146 and generating intra-lateral hit signal 1430) inhibit the activation of cell C22 (generating only inter-lateral hit signal 1434).

Another rule is to have cells that generate a higher number of lateral hit signals 1430, 1434 to inhibit activation of cells that generate fewer number of lateral hit signals 1430, 1434 in the same column or a subset of cells in the output processor 412, responsive to receiving the feedforward signal 1146. As shown in column 3, cell C31 generates receives feedforward signal 1146 and generates two intra-lateral hit signals 1430, and cell C34 generates receives feedforward signal 1146 and generates one intra-lateral hit signal 1430. Only cell C31 is activated whereas cell C34 is not activated because cell C31 generates a higher number of lateral hit signals than cell C34.

Another rule is to have cells that generate inter-lateral hit signals 1434 inhibit activation of cells that generate intra-lateral hit signals 1430, responsive to receiving feedforward signal 1146. As shown in group 4, cell C44 receives feedforward signal 1146 and generates an inter-lateral hit signal 1434, and cell C41 receives feedforward signal 1146 and generates an intra-lateral hit signal 1430. Only cell C44 is activated whereas cell C41 is not activated because cell C44 generates inter-lateral hit signal 1434.

Another rule is to select cells that were previously active for activation. For example, a cell that was active in the previous time step and is predictively active in the current time step may be selected for activation over a cell that is only predictively active in the current time step.

Another rule is to require a certain number of cells to be active within a given group. In such an instance, the activation and inhibition rules described above may be used to activate cells until the required number of cells are activated.

The rules illustrated in conjunction with FIG. 15 are merely examples. Other activation and inhibition rules for the inference system 104 may also be implemented.

FIG. 16 is a block diagram of a computing device 1600 for implementing inference systems according to embodiments. The computing device 1600 may include, among other components, a processor 1602, a memory 1606, an input interface 1610, an output interface 1614, a network interface 1618 and a bus 1620 connecting these components. The processor 1602 retrieves and executes commands stored in memory 1606. The memory 1606 store software components including, for example, operating systems and modules for instantiating and executing nodes as described herein. The input interface 1610 receives data from external sources such as sensor data or action information. The output interface 1614 is a component for providing the result of computation in various forms (e.g., image or audio signals). The network interface 1618 enables the computing device 1600 to communicate with other computing devices by a network. When multiple nodes or components of a single node is embodied in multiple computing devices, information associated with temporal sequencing, spatial pooling and management of nodes may be communicated between computing devices via the network interface 1618.

Upon reading this disclosure, those of skill in the art will appreciate still additional alternative designs for processing nodes. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the invention is not limited to the precise construction and components disclosed herein and that various modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope of the present disclosure. 

The invention claimed is:
 1. A computer-implemented method of performing inference, comprising: generating, by a first input processor, a first input representation indicating a first set of candidate pairs, the first set of candidate pairs indicating detection of a first feature of an unidentified object at first candidate locations associated with the first feature; determining, by a first output processor, a first output representation corresponding to the first input representation, the first output representation indicating one or more candidate objects associated with the first set of pairs and including the unidentified object; generating, by the first input processor, a second input representation indicating a second set of candidate pairs subsequent to generating the first input representation, the second set of candidate pairs indicating detection of a second feature of the unidentified object at second candidate locations associated with the second feature; determining, by the first output processor, a second output representation corresponding to the first input representation and the second input representation, the second output representation indicating one or more of the candidate objects associated with the first set of pairs and the second set of pairs; and determining one of the candidate objects as an identified object based on the first output representation and the second output representation.
 2. The computer-implemented method of claim 1, further comprising generating, by the first output processor, a feedback signal representing a prediction on the second input representation based on the first output representation, wherein the second input representation is generated by the first input processor based further on the feedback signal.
 3. The computer-implemented method of claim 1, further comprising: maintaining, by the first output processor, an output representation corresponding to one of the candidate objects for training; generating, by the first input processor, training input representations for pairs of locations and corresponding features associated with the one of the candidate objects for training; and associating the training input representations with the output representation corresponding to the one of the candidate objects for training.
 4. The computer-implemented method of claim 1, wherein the first input representation is an activation state of a first subset of input cells in the first input processor and the second input representation is an activation state of a second subset of the input cells in the first input processor.
 5. The computer-implemented method of claim 1, wherein a candidate location in the first candidate locations is one of a plurality of locations in the one or more candidate objects associated with the first set of pairs.
 6. The computer-implemented method of claim 5, wherein the first input representation indicates an activation of a union of pairs of the first feature and each of the first candidate locations associated with the first feature.
 7. The computer-implemented method of claim 6, wherein the first output representation further indicates one or more of the candidate objects associated with the union of pairs of the first feature and each of the first candidate locations associated with the first feature.
 8. The computer-implemented method of claim 7, wherein a candidate location in the second candidate locations is one of another plurality of locations generated by shifting each location in the plurality of potential locations by a predetermined distance.
 9. The computer-implemented method of claim 8, wherein the second input representation indicates an activation of a union of pairs of the second feature and one or more of the locations in the other plurality of potential locations that are associated with the one or more candidate objects indicated by the first output representation.
 10. The computer-implemented method of claim 4, wherein generating the second input representation comprises activating the second subsets of the input cells in the first input processor responsive to the second subsets of input cells receiving location signals representing the second location and activation signals associated with the second feature.
 11. The computer-implemented method of claim 4, wherein the second subset of the input cells in the first input processor are activated based further on a feedback signal associated with the first output representation.
 12. The computer-implemented method of claim 11, wherein each of the one or more candidate objects is represented by a corresponding activation state of a subset of output cells in the first output processor, and the feedback signal indicates the activation state of the subset of output cells.
 13. The computer-implemented method of claim 1, wherein the second output representation is an activation state of a subset of output cells in the first output processor.
 14. The computer-implemented method of claim 13, wherein generating the second output representation comprises activating the subset of the output cells in the first output processor responsive to the subset of output cells receiving feedforward signals corresponding to the second input representation.
 15. The computer-implemented method of claim 14, wherein the feedforward signals are sent from activated subset of input cells in the first input processor associated with the second input representation to the subset of the output cells in the first output processor connected to the activated subset of the input cells.
 16. The computer-implemented method of claim 4, further comprising: receiving first location information indicating the first candidate locations in a sparse distributed representation, the first input representation generated based on the first location information; and receiving second location information indicating the second candidate locations in a sparse distributed representation, the second input representation generated based on the second location information.
 17. The computer-implemented method of claim 13, further comprising: receiving, by the first input processor, a first sensory input indicating the first feature from a sensor, the first input representation generated based on the first sensory input; and receiving, by the first input processor, a second sensory input indicating the second feature from the sensor, the second input representation generated based on the second sensory input.
 18. The computer-implemented method of claim 17, further comprising: receiving, by a second input processor, a third sensory input indicating a third feature from another sensor; generating, by the second input processor, a third input representation of a third set of candidate pairs, the third set of candidate pairs indicating detection of a third feature of the object at third candidate locations associated with the third feature; determining, by a second output processor, activation states of a subset of other output cells in the second output processor corresponding to the third input representation, the activation states of the subset of the other output cells indicating one or more of the candidate objects associated with the third set of pairs; and sending the activation states of the subset of the other output cells in the second output processor to one or more of the output cells in the first output processor connected to the other output cells, activation of the one or more of the output cells in the first output processor based further on the activation states of the subset of the other output cells in the second output processor.
 19. The computer-implemented method of claim 1, further comprising: generating, by a second input processor, a third input representation of a third pair of a third location and a third feature at the third location; determining, by a second output processor, a third output representation corresponding to the third input representation, the third output representation indicating one or more candidates likely to be associated with the third pair; and sending the third output representation from the second output processor to the first output processor for determining the second output representation.
 20. The computer-implemented method of claim 1, wherein the first candidate locations and the second candidate locations are allocentric locations of the candidate objects.
 21. A computer-implemented method of performing inference, comprising: generating, by a first input processor, a first input representation indicating a first set of candidate pairs, the first set of candidate pairs indicating detection of a first feature of an unidentified object at first candidate locations associated with the first feature; determining, by a first output processor, a first output representation corresponding to the first input representation, the first output representation indicating one or more candidate objects associated with the first set of pairs and including the unidentified object; generating, by a second input processor, a second input representation indicating a second set of candidate pairs subsequent to generating the first input representation, the second set of candidate pairs indicating detection of a second feature of the unidentified object at second candidate locations associated with the second feature; determining, by a second output processor, a second output representation corresponding to the first output representation and the second input representation, the second output representation indicating one or more of the candidate objects associated with the first set of pairs and the second set of pairs; and determining one of the candidate objects as an identified object based on the first output representation and the second output representation.
 22. The computer-implemented method of claim 21, further comprising generating, by the first output processor, a feedback signal representing a prediction on a subsequent input representation to be detected in the first input processor, wherein the subsequent input representation is generated by the first input processor based further on the feedback signal.
 23. The computer-implemented method of claim 21, wherein the first input representation is an activation state of a first subset of input cells in the first input processor and the second input representation is an activation state of a second subset of the input cells in the second input processor.
 24. The computer-implemented method of claim 21, wherein a candidate location in the first candidate locations is one of a plurality of locations in the one or more candidate objects associated with the first set of pairs.
 25. The computer-implemented method of claim 21, wherein the first and second candidate locations are allocentric locations of candidate objects.
 26. A non-transitory computer readable storage medium comprising instructions when executed by a processor cause the processor to instantiate a method of performing inference, comprising: generating, by a first input processor, a first input representation indicating a first set of candidate pairs, the first set of candidate pairs indicating detection of a first feature of an unidentified object at first candidate locations associated with the first feature; determining by a first output processor, a first output representation corresponding to the first input representation, the first output representation indicating one or more candidate objects associated with the first set of pairs and including the unidentified object; generating, by the first input processor, a second input representation indicating a second set of candidate pairs subsequent to generating the first input representation, the second set of candidate pairs indicating detection of a second feature of the unidentified object at second candidate locations associated with the second feature; determining, by the first output processor, a second output representation corresponding to the first input representation and the second input representation, the second output representation indicating one or more of the candidate objects associated with the first pair and the second pair; and determining one of the candidate objects as an identified object based on the first output representation and the second output representation.
 27. A computing device, comprising: a first input circuit configured to: generate a first input representation of a first set of candidate pairs, the first set of candidate pairs indicating detection of a first feature of an unidentified object at first candidate locations associated with the first feature, and generate a second input representation of a second set of candidate pairs, the second set of candidate pairs indicating detection of a second feature of the unidentified object at second candidate locations associated with the second feature; a first output circuit coupled to the first input circuit and configured to: determine a first output representation corresponding to the first input representation, the first output representation indicating one or more candidate objects associated with the first set of pairs and including the unidentified object, determine a second output representation corresponding to the first input representation and the second input representation, the second output representation indicating one or more of the candidate objects associated with the first pair and the second pair, and determine one of the candidate objects as an identified object based on the first output representation and the second output representation.
 28. The computing device of claim 27, further comprising: a second input circuit configured to generate a third input representation of a third set of candidate pairs, the third set of candidate pairs indicating detection of a third feature of the object at third candidate locations associated with the third feature; and a second output circuit coupled to the second input circuit and the first output circuit, the second output circuit configured to: determine a third output representation corresponding to the third input representation, the third output representation indicating one or more of the candidate objects associated with the third set of pairs, and send the third output representation to the first output circuit for determining the second representation.
 29. A computing device, comprising: a first input circuit configured to generate a first input representation of a first set of candidate pairs, the first set of candidate pairs indicating detection of a first feature of an unidentified object at first candidate locations associated with the first feature; a first output circuit coupled to the first input circuit and configured to determine a first output representation corresponding to the first input representation, the first output representation indicating one or more candidate objects associated with the first set of pairs and including the unidentified object; a second input circuit configured to generate a second input representation of a second set of candidate pairs, the second set of candidate pairs indicating detection of a second feature of the unidentified object at second candidate locations associated with the second feature; a second output circuit coupled to the second input circuit and the first output circuit, the second output circuit configured to determine a second output representation corresponding to the first output representation and the second input representation, the second output representation indicating one or more of the candidate objects associated with the first set of pairs and the second set of pairs. 